// pages/classify/classify.js
const app = getApp();

Page({

  /**
   * 页面的初始数据
   */
  data: {
    sort: -1, //排序类型 
    menu: false,//是否显示下拉菜单
    priceSort: '价格排序', //价格排序的下拉菜单选中项
    baseGoodsImgUrl: 'https://jrtest.0791jr.com/data/attachment/item/', //商品图片基础url
    data: [], //商品列表
    pagesize: 20, //每页的数据量
    page: 1, //页数
    laoding: false,
    key: null,
    //为空提示
    isNone: false,
    emptyTip: {
      font: "没有相关宝贝~",
      imgUrl: "https://jrtest.0791jr.com/WeChat/images/empty-so.png"
    }
  },

  onLoad: function(options) {
    const userId = app.globalData.userId;
    const value = options.value;
    this.setData({ key: value });
    //请求搜索结果value
    wx.request({
      url: app.baseURL + 'Index&a=res_search&user_id=' + userId + '&pagesize=' + this.data.pagesize + '&page=1&searchinfo=' + value,
      success: (res) => { 
        if (res.data.status == 1) { 
          this.setData({ 
            data: res.data.res,
            isNone: !res.data.res.length
          });
          //判断是否已经加载到了最后一页
          this.isNoMore(res.data.res.length); 
        } 
      }
    })
  },

  //价格排序菜单-显示
  priceFirst() {
    this.setData({ menu: true })
  },
  //价格排序菜单-隐藏
  closeMenu() {
    this.setData({ menu: false })
  },

  //销量优先
  salesFirst: function(e) {
    const userId = app.globalData.userId, 
          key = this.data.key,
          pagesize = this.data.pagesize;
    //在数据请求完成之前显示‘加载中’提示
    wx.showLoading({
      title: '加载中'
    });
    //清除价格排序的选中样式、商品数据
    this.setData({
      priceSort: '价格排序',
      sort: 1,
      menu: false,
      page:1, 
      data: [] 
    });
    //按销量请求数据
    wx.request({
      url: app.baseURL + 'Index&a=res_search&type=1&user_id=' + userId + '&searchinfo=' + key + '&pagesize=' + pagesize + '&page=1',
      success: (res) => {
        //服务器返回数据成功
        if (res.data.status == 1) {
          //更新商品数据
          this.setData({ data: res.data.res });
          //关闭加载中提示
          wx.hideLoading();
          //判断是否已经加载到了最后一页
          this.isNoMore(res.data.res.length);
        }
      }
    })
  },

  //价格排序
  priceSortFun(e){
    const userId = app.globalData.userId,
          type = e.currentTarget.dataset.type,
          pagesize = this.data.pagesize,
          key = this.data.key;
    let name;      
    if (type == 3) {name = '从低到高'}
    else if (type == 2) { name = '从高到低'}      
    //显示加载中提示
    wx.showLoading({ title: '加载中' });
    //初始化样式
    this.setData({
      menu: false,
      sort: type,
      page: 1,
      priceSort: name,
      data: [] 
    });
    //请求数据
    wx.request({
      url: app.baseURL + 'Index&a=res_search&page=1&type=' + type + '&user_id=' + userId + '&pagesize=' + pagesize + '&searchinfo=' + key,
      success: (res) => {
        //更新商品数据
        this.setData({ data: res.data.res});
        //关闭加载中提示
        wx.hideLoading();
        //判断是否已经加载到了最后一页
        this.isNoMore(res.data.res.length);
      }
    });
  },

  //加载下一页
  loadMore(e){
    const userId = app.globalData.userId,
      type = this.data.sort,
      pagesize = this.data.pagesize,
      key = this.data.key;
    //如果没有加载到最后一页  
    if (!this.data.nomore) {
      let url;
      //页数+1，显示加载动画
      this.setData({ 
        page: this.data.page + 1,
        loading: true 
      });
      //判断有没有选择排序
        url = (type == -1) ? app.baseURL + 'Index&a=res_search&page=' + this.data.page + '&user_id=' + userId + '&pagesize=' + pagesize + '&searchinfo=' + key
            : app.baseURL + 'Index&a=res_search&page=' + this.data.page + '&type=' + type + '&user_id=' + userId + '&pagesize=' + pagesize + '&searchinfo=' + key;
      
      //请求数据
      wx.request({
        url: url,
        success: (res) => { 
          //更新商品数据
          this.setData({ data: [...this.data.data, ...res.data.res] });
          //关闭加载中提示
          wx.hideLoading();
          //判断是否已经加载到了最后一页
          this.isNoMore(res.data.res.length);
        }
      });
    }
    
  },

  /* 每次请求完数据：
  *     1.判断是否已经加载到最后一页，最后一页，显示没有更多提示
  *     2.关闭加载中的图标  
  */
  isNoMore(n) {
    this.setData({
      nomore: n < this.data.pagesize,
      loading: false
    });
  },

  //跳转到详情页
  navigaToDetail(e) {
    let item_id = e.currentTarget.dataset.item_id;
    wx.navigateTo({
      url: '/pages/detail/detail?item_id=' + item_id,
    })
  },

  /*
  * 声明周期函数，监听页面隐藏
  */
  onHide(){

  },

  onReachBottom: function () {
    this.isNoMore();
  },
})